{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "import networkx as nx\n",
    "import matplotlib.pyplot as plt\n",
    "import qutip\n",
    "from matplotlib.patches import Rectangle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "terms = ['XX', 'YY', 'ZZ', 'IZ', 'ZI']\n",
    "        \n",
    "pauli_to_matrix = {'I': qutip.identity(2),\n",
    "                   'X': qutip.sigmax(),\n",
    "                   'Y': qutip.sigmay(),\n",
    "                   'Z': qutip.sigmaz()}\n",
    "\n",
    "\n",
    "def commutes(term1, term2):\n",
    "    term1_matrices = [pauli_to_matrix[pauli] for pauli in term1]\n",
    "    term2_matrices = [pauli_to_matrix[pauli] for pauli in term2]\n",
    "    return qutip.commutator(qutip.tensor(*term1_matrices), qutip.tensor(*term2_matrices)).norm() == 0\n",
    "\n",
    "\n",
    "def qwc_commutes(term1, term2):\n",
    "    return all([commutes(term1[i], term2[i]) for i in range(len(term1))])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "for term in terms:\n",
    "    G.add_node(term)\n",
    "    \n",
    "G.add_edge('ZI', 'IZ', color='#88ade8');\n",
    "G.add_edge('ZI', 'ZZ', color='#88ade8');\n",
    "G.add_edge('IZ', 'ZZ', color='#88ade8');\n",
    "G.add_edge('ZZ', 'YY', color='#d95b59');\n",
    "G.add_edge('ZZ', 'XX', color='#d95b59');\n",
    "G.add_edge('XX', 'YY', color='#d95b59');\n",
    "\n",
    "colors = [edge[2]['color'] for edge in G.edges(data=True)]\n",
    "\n",
    "pos={'XX': [0, 0.4], 'YY': [0, 0], 'ZZ': [0.1, 0.2], 'ZI': [0.2, 0.4], 'IZ': [0.2, 0]}\n",
    "\n",
    "f,ax = plt.subplots(1,1, figsize=(8,5))\n",
    "\n",
    "\n",
    "nx.draw(G, pos=pos, with_labels=True, font_family=\"Times\", font_size=16, node_color='#ffffff', node_size=1930, edge_color=colors)\n",
    "ax = plt.gca() # to get the current axis\n",
    "ax.collections[0].set_edgecolor(\"#000000\") \n",
    "ax.add_patch(Rectangle((0.732, 0.075),0.15,0.85,linewidth=2,edgecolor='black',facecolor='none', transform=ax.transAxes))\n",
    "\n",
    "ax.add_patch(Rectangle((0.125, 0.075),0.45,0.85,linewidth=2,edgecolor='black',facecolor='none', transform=ax.transAxes))\n",
    "\n",
    "plt.savefig(\"k3_setting.svg\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "for term in terms:\n",
    "    G.add_node(term)\n",
    "    \n",
    "G.add_edge('ZI', 'IZ', color='#88ade8');\n",
    "G.add_edge('ZI', 'ZZ', color='#88ade8');\n",
    "G.add_edge('IZ', 'ZZ', color='#88ade8');\n",
    "G.add_edge('ZZ', 'YY', color='#d95b59');\n",
    "G.add_edge('ZZ', 'XX', color='#d95b59');\n",
    "G.add_edge('XX', 'YY', color='#d95b59');\n",
    "\n",
    "colors = [edge[2]['color'] for edge in G.edges(data=True)]\n",
    "\n",
    "pos={'XX': [0, 0.4], 'YY': [0, 0], 'ZZ': [0.1, 0.2], 'ZI': [0.2, 0.4], 'IZ': [0.2, 0]}\n",
    "\n",
    "f,ax = plt.subplots(1,1, figsize=(8,5))\n",
    "\n",
    "\n",
    "nx.draw(G, pos=pos, with_labels=True, font_family=\"Times\", font_size=16, node_color='#ffffff', node_size=1930, edge_color=colors)\n",
    "ax = plt.gca() # to get the current axis\n",
    "ax.collections[0].set_edgecolor(\"#000000\") \n",
    "ax.add_patch(Rectangle((0.73, 0.075),0.15,0.85,linewidth=2,edgecolor='black',facecolor='none', transform=ax.transAxes))\n",
    "\n",
    "ax.add_patch(Rectangle((0.125, 0.075),0.45,0.52,linewidth=2,edgecolor='black',facecolor='none', transform=ax.transAxes))\n",
    "\n",
    "ax.add_patch(Rectangle((0.133, 0.72),0.13,0.2,linewidth=2,edgecolor='black',facecolor='none', transform=ax.transAxes))\n",
    "\n",
    "plt.savefig(\"k2_setting.svg\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
